<?php
/**
 * Placeholder kelas untuk me-run sebuah proses.
 *
 * @category   Controllers
 * @package    Generic
 * @author     Lie Roberto Eliantono <roberto.ea@gmail.com>
 * @version    0.2.2
 */
class Gnc_proc extends MX_Controller
{
	protected $model_path	= 'gnc_db_mysql';
	
	/**
	 * Menginisialisasi atribut kelas dengan default values
	 *
	 * @return void
	 * @access public
	 */
	public function __construct() {
		parent::__construct();
		
		if (!is_null($this->model_path)) {
			$this->load->model($this->model_path, 'model');
		}
	}
	
	/**
	 * Mengeset variabel $this->$name dengan $value
	 *
	 * @return void
	 * @access public
	 */
	public function __set($name, $value) {
		$this->$name = $value;
	}
	
	/**
	 * Mengambil isi dari variabel $this->$name
	 *
	 * @return mixed nilai dari $this->$name
	 * @access public
	 */
	public function __get($name) {
		$result = parent::__get($name);
		if (is_null($result)) {
			$result = $this->$name;
		}
		return $result;
	}
	
	/**
	 * Menentukan method yang dipanggil ketika controller diakses
	 *
	 * Secara default, method ini akan mengecek apakah proses dapat dieksekusi
	 * saat ini, jika ya, maka panggil method run
	 *
	 * @return void
	 * @access public
	 * @see runnable(), run()
	 */
	public function index() {
		if ($this->runnable()) {
			$this->run();
		}
	}
	
	/**
	 * Mengeksekusi proses
	 *
	 * Method ini merupakan placeholder method yang berisi proses
	 * yang hendak dieksekusi
	 *
	 * @return void
	 * @access public
	 */
	public function run() {
		
	}
	
	/**
	 * Mengecek apakah proses dapat dieksekusi saat ini
	 *
	 * Method ini merupakan placeholder method yang berisi pengecekan
	 * apakah proses dapat dieksekusi saat ini atau tidak
	 *
	 * @return boolean true jika proses dapat dieksekusi saat ini, false jika tidak
	 * @access public
	 */
	protected function runnable() {
	}
}

/* EOF controllers/gnc_proc.php */